package cn.bearspark.common.parse;

import lombok.Setter;

/**
 * 解析器的抽象父类
 *
 * @author f
 */
@Setter
public abstract class Parser<CTX extends Context> {

    /**
     * 容纳自身处理器的管道
     */
    private Pipeline<CTX> pipeline;

    /**
     * 获取管道
     */
    public Pipeline<CTX> pipeline() {
        return pipeline;
    }

    /**
     * 解析源字符串
     */
    public abstract void parse();

    /**
     * 反解析目标字符串
     */
    public abstract void unparse();
}
